//const express = require("express");
//const app = express();
//const bodyParser = require("body-parser");
//const multer = require("multer");
//app.use(bodyParser.urlencoded({extended:false}));
//app.use(bodyParser.json());
//app.use(express.static("public"));
//app.all('*', function(req, res, next) {
//res.header("Access-Control-Allow-Origin", "*");
//res.header("Access-Control-Allow-Headers", "X-Requested-With");
//res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
//res.header("X-Powered-By",' 3.2.1');
//res.header("Content-Type", "application/json;charset=utf-8");
//next();
//});
//const storage = multer.diskStorage({
////destination 用来设置上传文件的路径 可以接收一个回调函数， 或者一个字符串
////如果传递一个回调函数的话，则需要确保路径有效
//destination: 'uploads/',
// 
////filename 属性可以用来指定文件上传以后保存到服务器中的名字
//filename: function (req, file, cb) {
//  //cb(null, file.fieldname + '-' + Date.now())
//  //获取文件的扩展名
//  //Chrysanthemum.jpg
//  let fname = file.originalname;
//  let extName = "";
//  //判断文件是否具有扩展名
//  if(fname.lastIndexOf(".") != -1){
//    extName = fname.slice(fname.lastIndexOf("."));
//  }
// 
//  //上传文件时，一般不会直接将用户的文件名直接保存的服务器中
//  //一般会随机生成一个文件名
//  cb(null, file.fieldname + '-' + Date.now()+extName);
//}
//})
//const upload = multer(
//{
//  storage: storage,
//  limits:{
//   //限制文件的大小为200kb
//   fileSize:1024*20000
//   }
//});
//app.post("/testUpload" , (req , res)=>{
////获取解析请求体的函数
//let fu = upload.single('photo');
////手动调用函数来解析请求体
//fu(req , res , (err)=>{
//  if(err){
//  	console.log(err)
//    //证明上传出错了，文件大小超标
//    res.send("文件太大了，请上传200kb以下的文件！！");
//  }else{
//    //读取请求参数
//    let username = req.body.username;
//    res.send("上传成功~~~");
//  }
//});
//});
//app.listen(3333,()=>{
//console.log("success");
//});
/**
 * Created by iwang on 2017/1/15.
 */
//express使用的是@4版本的。
var express = require('express');
//form表单需要的中间件。
var mutipart= require('connect-multiparty');
var mutipartMiddeware = mutipart();
var app = express();
//下面会修改临时文件的储存位置，如过没有会默认储存别的地方，这里不在详细描述,这个修改临时文件储存的位置 我在百度里查找了三四个小时才找到这个方法，不得不说nodejs真难学。
//所以在这里留下我的学习记录，以备以后翻阅。
app.use(mutipart({uploadDir:'./photo'}));
//设置http服务监听的端口号。
app.set('port',process.env.PORT || 3000);
app.listen(app.get('port'),function () {
    console.log("Express started on http://localhost:"+app.get('port')+'; press Ctrl-C to terminate.');
});
//浏览器访问localhost会输出一个html文件
app.get('/',function (req,res) {
    res.type('text/html');
    res.sendfile('./public/index.html')

});
//这里用来玩，express框架路由功能写的，与上传文件没没有关系。
app.get('/about',function (req,res) {
    res.type('text/plain');
    res.send('Travel about');
});
//这里就是接受form表单请求的接口路径，请求方式为post。
app.post('/upload',mutipartMiddeware,function (req,res) {
    //这里打印可以看到接收到文件的信息。
    console.log(req.files);
    /*//do something
    * 成功接受到浏览器传来的文件。我们可以在这里写对文件的一系列操作。例如重命名，修改文件储存路径 。等等。
    *
    *
    * */

    //给浏览器返回一个成功提示。
    res.send('upload success!');
});